#ifndef EEZ_LVGL_UI_SCREENS_H
#define EEZ_LVGL_UI_SCREENS_H

#include <lvgl.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _objects_t {
    lv_obj_t *home;
    lv_obj_t *page_1;
    lv_obj_t *page_3;
    lv_obj_t *wifi_connect_page;
    lv_obj_t *wifi_connect_page_2;
    lv_obj_t *page_4;
    lv_obj_t *save_setting_mseeage;
    lv_obj_t *save_setting_warn_mseeage;
    lv_obj_t *show_sntp_time_page;
    lv_obj_t *menu_button;
    lv_obj_t *obj0;
    lv_obj_t *obj1;
    lv_obj_t *obj2;
    lv_obj_t *obj3;
    lv_obj_t *obj4;
    lv_obj_t *obj5;
    lv_obj_t *obj6;
    lv_obj_t *obj7;
    lv_obj_t *obj8;
    lv_obj_t *obj9;
    lv_obj_t *obj10;
    lv_obj_t *obj11;
    lv_obj_t *wifi_passwd_text;
    lv_obj_t *see_passwd_img;
    lv_obj_t *connect_wifi_button;
    lv_obj_t *obj12;
    lv_obj_t *obj13;
    lv_obj_t *obj14;
    lv_obj_t *obj15;
    lv_obj_t *obj16;
    lv_obj_t *obj17;
    lv_obj_t *obj18;
    lv_obj_t *obj19;
    lv_obj_t *obj20;
    lv_obj_t *obj21;
    lv_obj_t *obj22;
    lv_obj_t *obj23;
    lv_obj_t *spinner;
    lv_obj_t *time_label;
    lv_obj_t *obj24;
    lv_obj_t *obj25;
    lv_obj_t *spinner_1;
    lv_obj_t *obj26;
    lv_obj_t *obj27;
    lv_obj_t *obj28;
    lv_obj_t *picture_list;
    lv_obj_t *obj29;
    lv_obj_t *wifi_list;
    lv_obj_t *obj30;
    lv_obj_t *wlan_name_label;
    lv_obj_t *obj31;
    lv_obj_t *obj32;
    lv_obj_t *obj33;
    lv_obj_t *obj34;
    lv_obj_t *obj35;
    lv_obj_t *obj36;
    lv_obj_t *obj37;
    lv_obj_t *obj38;
    lv_obj_t *obj39;
    lv_obj_t *obj40;
    lv_obj_t *system_time_label;
    lv_obj_t *obj41;
    lv_obj_t *http_server_prompt_label;
} objects_t;

extern objects_t objects;

enum ScreensEnum {
    SCREEN_ID_HOME = 1,
    SCREEN_ID_PAGE_1 = 2,
    SCREEN_ID_PAGE_3 = 3,
    SCREEN_ID_WIFI_CONNECT_PAGE = 4,
    SCREEN_ID_WIFI_CONNECT_PAGE_2 = 5,
    SCREEN_ID_PAGE_4 = 6,
    SCREEN_ID_SAVE_SETTING_MSEEAGE = 7,
    SCREEN_ID_SAVE_SETTING_WARN_MSEEAGE = 8,
    SCREEN_ID_SHOW_SNTP_TIME_PAGE = 9,
};

void create_screen_home();
void tick_screen_home();

void create_screen_page_1();
void tick_screen_page_1();

void create_screen_page_3();
void tick_screen_page_3();

void create_screen_wifi_connect_page();
void tick_screen_wifi_connect_page();

void create_screen_wifi_connect_page_2();
void tick_screen_wifi_connect_page_2();

void create_screen_page_4();
void tick_screen_page_4();

void create_screen_save_setting_mseeage();
void tick_screen_save_setting_mseeage();

void create_screen_save_setting_warn_mseeage();
void tick_screen_save_setting_warn_mseeage();

void create_screen_show_sntp_time_page();
void tick_screen_show_sntp_time_page();

void create_user_widget_wifi_panel(lv_obj_t *parent_obj, void *flowState, int startWidgetIndex);
void tick_user_widget_wifi_panel(void *flowState, int startWidgetIndex);

void tick_screen_by_id(enum ScreensEnum screenId);
void tick_screen(int screen_index);

void create_screens();


#ifdef __cplusplus
}
#endif

#endif /*EEZ_LVGL_UI_SCREENS_H*/